package com.yidu.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.comment.Page;
import com.yidu.model.SnMaPurchase;
import com.yidu.model.SnProDetail;
import com.yidu.model.SnProduction;
import com.yidu.model.SnUser;
import com.yidu.service.SnMaPurchaseService;

/**
 * 材料采购action
 * @author chensituo
 * @date 2018年12月4日 上午10:02:15
 */
@Controller
@RequestMapping("/mapurchase")
public class SnMaPurchaseAction {
	/**
	 * 注入材料采购service
	 */
	@Resource
	SnMaPurchaseService maPurchaseService;
	
	/**
	 * 查询所有
	 * @param page 当前页数
	 * @param limit 当前行数
	 * @param maPurchase 材料采购model
	 * @return json 格式
	 */
	@RequestMapping("/findAll")
	@ResponseBody
	public Map<String, Object> findAll(String page,String limit,SnMaPurchase maPurchase){
		//得到分页工具类
		Page pages=new Page();
		//将数据封装
		pages.setCurPage(Integer.valueOf(page));
		pages.setRows(Integer.valueOf(limit));
		
		//创建一个map对象
		Map<String, Object> maps=new HashMap<>();
		maps.put("page", pages);
		maps.put("maPurchase", maPurchase);
		//调用条件查询的方法
		List<SnProDetail> list=maPurchaseService.findAll(maps);
		//调用查询行数的方法
		int count=maPurchaseService.findCount(maps);
		
		//创建一个map
		Map<String, Object> map = new HashMap<>();
		map.put("code", 0);
		map.put("msg", 0);
		map.put("count",count);
		//将list放入map中
		map.put("data", list);
		return map;
	}
	/**
	 * 删除
	 * @param purId 采购id
	 * @return 0 删除失败 1 删除成功
	 */
	@RequestMapping("/delete")
	@ResponseBody
	public int delete(String purId) {
		//调用删除的方法
		return maPurchaseService.delete(purId);
	}
	
	/**
	 * 增加材料采购 和采购详情
	 * @param sum 材料id和材料数量拼接字符串
	 * @param maxCount 采购总数量
	 * @param maxMoney 采购总金额
	 * @return 0 增加失败 1 增加成功
	 */
	@RequestMapping("/addPurchaseDetail")
	@ResponseBody
	public int addPurchaseDetail(String sum,String maxCount,String maxMoney,String purId,HttpSession session) {
		SnUser user=(SnUser) session.getAttribute("user");
		//调用增加材料采购 和采购详情的方法
		return maPurchaseService.addPurchaseDetail(sum,maxCount,maxMoney,user,purId);
	}
	/**
	 * 根据采购id查询采购详情
	 * @param purId 采购id
	 * @return 采购 和采购详情
	 */
	@RequestMapping("/findByprichaseDetailId")
	@ResponseBody
	public Map<String, Object> findByprichaseDetailId(String purId){
		//调用根据采购id查询采购详情
		return maPurchaseService.findByprichaseDetailId(purId);
	}
	/**
	 * 提交审核
	 * @param purId 采购id
	 * @return 0 添加审核成功 1 添加审核失败
	 */
	@RequestMapping("/updateAudit")
	@ResponseBody
	public int updateAudit(String purId) {
		//调用提交采购审核的方法
		return maPurchaseService.updateAudit(purId);
	}
	/**
	 * 修改采购状态开始采购
	 * @param purId 材料采购id
	 * @param number 状态
	 * @return 0 修改失败 1 修改成功
	 */
	@RequestMapping("/updateState")
	@ResponseBody
	public int updateState(String purId,String number) {
		return maPurchaseService.updateState(purId,number);
	}
	/**
	 * 修改采购状态采购完成
	 * @param purId 材料采购id
	 * @return 0 修改失败 1 修改成功
	 */
	@RequestMapping("/accomplish")
	@ResponseBody
	public int accomplish(String purId) {
		return maPurchaseService.accomplish(purId);
	}
	/**
	 * 提交材料采购质检
	 * @param purId 材料采购id
	 * @return 0 提交质检失败 1 提交质检成功
	 */
	@RequestMapping("/addMaQuality")
	@ResponseBody
	public int addMaQuality(String purId) {
		//调用提交材料采购质检的方法
		return maPurchaseService.addMaQuality(purId);
	}
}
